package top.linuyx.pojo.param;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * @Author Linuyx
 * @Description 收货地址编辑请求体
 * @Date Created in 2021-04-20 11:33
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class ShippingAddressInsertParam implements Serializable {

    /**
     * 用户id,根据此id关联用户表和收货地址表
     */
    private Long userId;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    @Size(max = 32,message = "姓名长度不得超过32位")
    private String name;

    /**
     * 性别
     */
    @NotBlank(message = "性别不能为空")
    @Pattern(regexp = "(男|女)",message = "性别只能输入男或女")
    private String sexName;

    /**
     * 性别,1 男，0 女
     */
    private Integer sexId;

    /**
     * 电话
     */
    @NotBlank(message = "电话不能为空")
    @Pattern(regexp = "1[3-9][0-9]{9}",message = "电话不合法")
    private String phone;

    /**
     * 省份
     */
    @NotBlank(message = "所在省份不能为空")
    @Size(max = 32, message = "所在省份长度不得超过32位")
    private String province;

    /**
     * 市
     */
    @NotBlank(message = "所在市不能为空")
    @Size(max = 32, message = "所在市长度不得超过32位")
    private String city;

    /**
     * 区
     */
    @NotBlank(message = "所在区不能为空")
    @Size(max = 32, message = "所在区长度不能超过32位")
    private String district;

    /**
     * 门牌号
     */
    @NotBlank(message = "门牌号不能为空")
    @Size(max = 32, message = "门牌号长度不能超过32位")
    private String houseNumber;

    /**
     * 默认地址标识, 1 是, 0 否
     */
    @NotNull(message = "默认地址标识不能为空")
    @Pattern(regexp = "(1|0)", message = "默认地址标识只能输入1或0")
    private String isDefaultName;

    /**
     * 默认地址标识, 1 是, 0 否
     */
    private Integer isDefault;

    /**
     * 标签
     */
    @NotBlank(message = "标签不能为空")
    @Size(max = 32, message = "标签长度不能超过32位")
    private String labelName;

    /**
     * 标签id
     */
    private Long labelId;

}
